package br.com.cqipac.to;

// Generated 24/06/2008 08:32:05 by Hibernate Tools 3.2.1.GA

import java.util.Date;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import static javax.persistence.GenerationType.IDENTITY;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.UniqueConstraint;

/**
 * Funcionario generated by hbm2java
 */
@Entity
@Table(name = "tb_funcionario", catalog = "db_cq_ipac", uniqueConstraints = @UniqueConstraint(columnNames = "des_usuario"))
public class Funcionario implements java.io.Serializable {

	private Integer codFuncionario;
	private Funcionario funcionario;
	private String nomFuncionario;
	private String desUsuario;
	private String desSenha;
	private boolean stsFuncionario;
	private Date dtInclusao;
	private boolean stsAdmin;
	private Set setorFuncionariosForCodFuncionario = new HashSet(0);
	private Set naoConformidades = new HashSet(0);
	private Set funcionarios = new HashSet(0);
	private Set tipoNaoConformidades = new HashSet(0);
	private Set setorsForCodFuncionarioInclusao = new HashSet(0);
	private Set setorFuncionariosForCodFuncionarioInclusao = new HashSet(0);
	private Set setorsForCodFuncionarioResponsavel = new HashSet(0);

	public Funcionario() {
	}

	public Funcionario(Funcionario funcionario, String nomFuncionario,
			String desUsuario, String desSenha, boolean stsFuncionario,
			Date dtInclusao, boolean stsAdmin) {
		this.funcionario = funcionario;
		this.nomFuncionario = nomFuncionario;
		this.desUsuario = desUsuario;
		this.desSenha = desSenha;
		this.stsFuncionario = stsFuncionario;
		this.dtInclusao = dtInclusao;
		this.stsAdmin = stsAdmin;
	}

	public Funcionario(Funcionario funcionario, String nomFuncionario,
			String desUsuario, String desSenha, boolean stsFuncionario,
			Date dtInclusao, boolean stsAdmin,
			Set setorFuncionariosForCodFuncionario, Set naoConformidades,
			Set funcionarios, Set tipoNaoConformidades,
			Set setorsForCodFuncionarioInclusao,
			Set setorFuncionariosForCodFuncionarioInclusao,
			Set setorsForCodFuncionarioResponsavel) {
		this.funcionario = funcionario;
		this.nomFuncionario = nomFuncionario;
		this.desUsuario = desUsuario;
		this.desSenha = desSenha;
		this.stsFuncionario = stsFuncionario;
		this.dtInclusao = dtInclusao;
		this.stsAdmin = stsAdmin;
		this.setorFuncionariosForCodFuncionario = setorFuncionariosForCodFuncionario;
		this.naoConformidades = naoConformidades;
		this.funcionarios = funcionarios;
		this.tipoNaoConformidades = tipoNaoConformidades;
		this.setorsForCodFuncionarioInclusao = setorsForCodFuncionarioInclusao;
		this.setorFuncionariosForCodFuncionarioInclusao = setorFuncionariosForCodFuncionarioInclusao;
		this.setorsForCodFuncionarioResponsavel = setorsForCodFuncionarioResponsavel;
	}

	@Id
	@GeneratedValue(strategy = IDENTITY)
	@Column(name = "cod_funcionario", unique = true, nullable = false)
	public Integer getCodFuncionario() {
		return this.codFuncionario;
	}

	public void setCodFuncionario(Integer codFuncionario) {
		this.codFuncionario = codFuncionario;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "cod_funcionario_inclusao", nullable = false)
	public Funcionario getFuncionario() {
		return this.funcionario;
	}

	public void setFuncionario(Funcionario funcionario) {
		this.funcionario = funcionario;
	}

	@Column(name = "nom_funcionario", nullable = false, length = 100)
	public String getNomFuncionario() {
		return this.nomFuncionario;
	}

	public void setNomFuncionario(String nomFuncionario) {
		this.nomFuncionario = nomFuncionario;
	}

	@Column(name = "des_usuario", unique = true, nullable = false, length = 45)
	public String getDesUsuario() {
		return this.desUsuario;
	}

	public void setDesUsuario(String desUsuario) {
		this.desUsuario = desUsuario;
	}

	@Column(name = "des_senha", nullable = false, length = 45)
	public String getDesSenha() {
		return this.desSenha;
	}

	public void setDesSenha(String desSenha) {
		this.desSenha = desSenha;
	}

	@Column(name = "sts_funcionario", nullable = false)
	public boolean isStsFuncionario() {
		return this.stsFuncionario;
	}

	public void setStsFuncionario(boolean stsFuncionario) {
		this.stsFuncionario = stsFuncionario;
	}

	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "dt_inclusao", nullable = false, length = 19)
	public Date getDtInclusao() {
		return this.dtInclusao;
	}

	public void setDtInclusao(Date dtInclusao) {
		this.dtInclusao = dtInclusao;
	}

	@Column(name = "sts_admin", nullable = false)
	public boolean isStsAdmin() {
		return this.stsAdmin;
	}

	public void setStsAdmin(boolean stsAdmin) {
		this.stsAdmin = stsAdmin;
	}

	@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "funcionarioByCodFuncionario")
	public Set getSetorFuncionariosForCodFuncionario() {
		return this.setorFuncionariosForCodFuncionario;
	}

	public void setSetorFuncionariosForCodFuncionario(
			Set setorFuncionariosForCodFuncionario) {
		this.setorFuncionariosForCodFuncionario = setorFuncionariosForCodFuncionario;
	}

	@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "funcionario")
	public Set getNaoConformidades() {
		return this.naoConformidades;
	}

	public void setNaoConformidades(Set naoConformidades) {
		this.naoConformidades = naoConformidades;
	}

	@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "funcionario")
	public Set getFuncionarios() {
		return this.funcionarios;
	}

	public void setFuncionarios(Set funcionarios) {
		this.funcionarios = funcionarios;
	}

	@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "funcionario")
	public Set getTipoNaoConformidades() {
		return this.tipoNaoConformidades;
	}

	public void setTipoNaoConformidades(Set tipoNaoConformidades) {
		this.tipoNaoConformidades = tipoNaoConformidades;
	}

	@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "funcionarioByCodFuncionarioInclusao")
	public Set getSetorsForCodFuncionarioInclusao() {
		return this.setorsForCodFuncionarioInclusao;
	}

	public void setSetorsForCodFuncionarioInclusao(
			Set setorsForCodFuncionarioInclusao) {
		this.setorsForCodFuncionarioInclusao = setorsForCodFuncionarioInclusao;
	}

	@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "funcionarioByCodFuncionarioInclusao")
	public Set getSetorFuncionariosForCodFuncionarioInclusao() {
		return this.setorFuncionariosForCodFuncionarioInclusao;
	}

	public void setSetorFuncionariosForCodFuncionarioInclusao(
			Set setorFuncionariosForCodFuncionarioInclusao) {
		this.setorFuncionariosForCodFuncionarioInclusao = setorFuncionariosForCodFuncionarioInclusao;
	}

	@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "funcionarioByCodFuncionarioResponsavel")
	public Set getSetorsForCodFuncionarioResponsavel() {
		return this.setorsForCodFuncionarioResponsavel;
	}

	public void setSetorsForCodFuncionarioResponsavel(
			Set setorsForCodFuncionarioResponsavel) {
		this.setorsForCodFuncionarioResponsavel = setorsForCodFuncionarioResponsavel;
	}

}
